import Vue from 'vue'
import axios from 'axios'
import qs from 'qs'
import serverConfig from '../serverConfig/serverApi'
import {
  Indicator,
  Toast
} from 'mint-ui';
// 响应时间
// axios.defaults.timeout = 5 * 1000
// 配置cookie
axios.defaults.withCredentials = true;
// 配置请求头
// axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'
// 静态资源
Vue.prototype.$static = ''

// 配置接口地址
axios.defaults.baseURL = 'http://47.110.33.164:8080';
// http://121.199.63.66:8080/xgwj-platform
// http://49.235.218.198:8080/xgwj-platform'
// http://118.190.104.193:8080/xgwj-platform
// /http://47.105.124.23:8080/xgwj-platform
// http://47.110.33.164:8080
// var loadingInstance
// POST传参序列化(添加请求拦截器)
// axios.interceptors.request.use(
//   config => {
//     loadingInstance = Indicator.open({
//         text: '加载中...',
//         spinnerType: 'fading-circle'
//       });
//     if (config.method === 'post') {
//       config.data = qs.stringify(config.data)
//     }
//     return config
//   },
//   err => {
//     loadingInstance.close()
//     Toast({
//         message: '请求失败',
//         position: 'bottom',
//         duration: 3000
//       });
//     return Promise.reject(err)
//   }
// )
// 返回状态判断(添加响应拦截器)
axios.interceptors.response.use(
  res => {
    if (res.status === 200) {
      Indicator.close();
      if(!res.data.success){
        Toast({
          message: res.data.resultMsg,
          position: 'center',
          duration: 2000,
        });
      }
      return res
    } else {
      Toast({
        message: '请求失败，请稍后再试',
        position: 'center',
        duration: 3000,
      });
    }
  },
  err => {
    Indicator.close()
    Toast({
      message: '请求失败，请稍后再试',
      position: 'center',
      duration: 3000
    });
    return Promise.reject(err)
  }
);
// 发送请求
export function fetchPost(url, params) {
  Indicator.open({
    text: '加载中...',
  });
  let qsParams = '';
  // if (params) {
  //   qsParams = qs.stringify(params);
  // }
  return new Promise((resolve, reject) => {
    axios
      .post(serverConfig[url], params)
      .then(
        res => {
          resolve(res.data)
        }
      )
      .catch(err => {
        reject(err.data)
      })
  })
};
export function fetchPut(url, params) {
  Indicator.open({
    text: '加载中...',
  });
  let qsParams = '';
  // if (params) {
  //   qsParams = qs.stringify(params);
  // }
  return new Promise((resolve, reject) => {
    axios
      .put(serverConfig[url], params)
      .then(
        res => {
          resolve(res.data)
        }
      )
      .catch(err => {
        reject(err.data)
      })
  })
};
export function fetchGet(url, params) {
  Indicator.open({
    text: '加载中...'
  });
  return new Promise((resolve, reject) => {
    axios
      .get(serverConfig[url], {
        params: params
      })
      .then(res => {
        resolve(res.data)
      })
      .catch(err => {
        reject(err.data)
      })
  })
};
/*  组件内部的调用方法 */
// getData () {
//   let params = {
//     userId: this.userId
//   }
//   this.$get('/xxx', params).then(res => {
//     this.listsData = res.data
//   }).catch(() => {
//   })
// }
